using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Appr;
using net_work.Data.Entity.Appr;
using net_work.Data.VO.Appr;

namespace net_work.IRepository.Appr;

public interface IFlowNodeRepository : IRepository<FlowNode>
{
    /// <summary>
    /// 插入流程节点
    /// </summary>
    /// <param name="flowNodeAddRequest">插入流程节点</param>
    /// <returns>插入的流程节点Id</returns>
    Task<long> InsertAsync(FlowNodeAddRequest flowNodeAddRequest);

    /// <summary>
    /// 更新流程节点信息
    /// </summary>
    /// <param name="flowNodeUpdateRequest">更新流程节点信息</param>
    /// <returns>是否成功</returns>
    Task<bool> UpdateAsync(FlowNodeUpdateRequest flowNodeUpdateRequest);

    /// <summary>
    /// 获取流程节点分页列表
    /// </summary>
    /// <param name="request">分页请求</param>
    /// <returns>流程节点分页列表</returns>
    Task<PagedResult<FlowNodeResult>> GetFlowNodePagedAsync(PagedRequest request);
}